home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 16 / IOPROG_16.ISO / soft / macaxsdk / macsdk.hqx / ActiveX DR3 SDK / ActiveX SDK / Container Common / CAXThreadManager.h / CAXThreadManager.h
Encoding:
Text File  |  1997-04-30  |  4.4 KB  |  86 lines  |  [TEXT/CWIE]

  1. // >>> ⌐ 1996-1997 Microsoft Corporation.  All rights reserved. <<<
  2. class CAXThreadManager : 
  3.     public CBaseCOM,
  4.     public IMacThreadManager
  5. {
  6. public:
  7.     CAXThreadManager(AXThreadCallbacks* inThreadCallbacks) { mThreadCallbacks = *inThreadCallbacks; }
  8.     
  9.     // *** IUnknown methods ***
  10.     STDMETHOD (QueryInterface) (THIS_ REFIID inRefIID, void **outObj);
  11.     STDMETHOD_(ULONG, AddRef)(void) { return CBaseCOM::AddRef(); }
  12.     STDMETHOD_(ULONG, Release)(void) { return CBaseCOM::Release(); }
  13.  
  14.     // **** IMacThreadManager methods ***
  15.     STDMETHOD( CreateThreadPool)(THIS_ ThreadStyle threadStyle, short numToCreate, Size stackSize)
  16.         { return mThreadCallbacks.AXCreateThreadPool(threadStyle, numToCreate, stackSize); }
  17.  
  18.     STDMETHOD( GetFreeThreadCount)(THIS_ ThreadStyle threadStyle, short *freeCount)
  19.         { return mThreadCallbacks.AXGetFreeThreadCount(threadStyle, freeCount); }
  20.  
  21.     STDMETHOD( GetSpecificFreeThreadCount)(THIS_ ThreadStyle threadStyle, Size stackSize, short *freeCount)
  22.         { return mThreadCallbacks.AXGetSpecificFreeThreadCount(threadStyle, stackSize, freeCount); }
  23.  
  24.     STDMETHOD( GetDefaultThreadStackSize)(THIS_ ThreadStyle threadStyle, Size *stackSize)
  25.         { return mThreadCallbacks.AXGetDefaultThreadStackSize(threadStyle, stackSize); }
  26.  
  27.     STDMETHOD( ThreadCurrentStackSpace)(THIS_ ThreadID thread, unsigned long *freeStack)
  28.         { return mThreadCallbacks.AXThreadCurrentStackSpace(thread, freeStack); }
  29.  
  30.     STDMETHOD( NewThread)(THIS_ ThreadStyle threadStyle, ThreadEntryProcPtr threadEntry, void *threadParam, Size stackSize, ThreadOptions options, void **threadResult, ThreadID *threadMade)
  31.         { return mThreadCallbacks.AXNewThread(threadStyle, threadEntry, threadParam, stackSize, options, threadResult, threadMade); }
  32.  
  33.     STDMETHOD( DisposeThread)(THIS_ ThreadID threadToDump, void *threadResult, Boolean recycleThread)
  34.         { return mThreadCallbacks.AXDisposeThread(threadToDump, threadResult, recycleThread); }
  35.  
  36.     STDMETHOD( YieldToThread)(THIS_ ThreadID suggestedThread)
  37.         { return mThreadCallbacks.AXYieldToThread(suggestedThread); }
  38.  
  39.     STDMETHOD( YieldToAnyThread)(THIS)
  40.         { return mThreadCallbacks.AXYieldToAnyThread(); }
  41.  
  42.     STDMETHOD( GetCurrentThread)(THIS_ ThreadID *currentThreadID)
  43.         { return mThreadCallbacks.AXGetCurrentThread(currentThreadID); }
  44.  
  45.     STDMETHOD( GetThreadState)(THIS_ ThreadID threadToGet, ThreadState *threadState)
  46.         { return mThreadCallbacks.AXGetThreadState(threadToGet, threadState); }
  47.  
  48.     STDMETHOD( SetThreadState)(THIS_ ThreadID threadToSet, ThreadState newState, ThreadID suggestedThread)
  49.         { return mThreadCallbacks.AXSetThreadState(threadToSet, newState, suggestedThread); }
  50.  
  51.     STDMETHOD( SetThreadStateEndCritical)(THIS_ ThreadID threadToSet, ThreadState newState, ThreadID suggestedThread)
  52.         { return mThreadCallbacks.AXSetThreadStateEndCritical(threadToSet, newState, suggestedThread); }
  53.  
  54.     STDMETHOD( SetThreadScheduler)(THIS_ ThreadSchedulerProcPtr threadScheduler)
  55.         { return mThreadCallbacks.AXSetThreadScheduler(threadScheduler); }
  56.  
  57.     STDMETHOD( SetThreadSwitcher)(THIS_ ThreadID thread, ThreadSwitchProcPtr threadSwitcher, void *switchProcParam, Boolean inOrOut)
  58.         { return mThreadCallbacks.AXSetThreadSwitcher(thread, threadSwitcher, switchProcParam, inOrOut); }
  59.  
  60.     STDMETHOD( SetThreadTerminator)(THIS_ ThreadID thread, ThreadTerminationProcPtr threadTerminator, void *terminationProcParam)
  61.         { return mThreadCallbacks.AXSetThreadTerminator(thread, threadTerminator, terminationProcParam); }
  62.  
  63.     STDMETHOD( ThreadBeginCritical)(THIS)
  64.         { return mThreadCallbacks.AXThreadBeginCritical(); }
  65.  
  66.     STDMETHOD( ThreadEndCritical)(THIS)
  67.         { return mThreadCallbacks.AXThreadEndCritical(); }
  68.  
  69.     STDMETHOD( SetDebuggerNotificationProcs)(THIS_ DebuggerNewThreadProcPtr notifyNewThread, DebuggerDisposeThreadProcPtr notifyDisposeThread, DebuggerThreadSchedulerProcPtr notifyThreadScheduler)
  70.         { return mThreadCallbacks.AXSetDebuggerNotificationProcs(notifyNewThread, notifyDisposeThread, notifyThreadScheduler); }
  71.  
  72.     STDMETHOD( GetThreadCurrentTaskRef)(THIS_ ThreadTaskRef *threadTRef)
  73.         { return mThreadCallbacks.AXGetThreadCurrentTaskRef(threadTRef); }
  74.  
  75.     STDMETHOD( GetThreadStateGivenTaskRef)(THIS_ ThreadTaskRef threadTRef, ThreadID threadToGet, ThreadState *threadState)
  76.         { return mThreadCallbacks.AXGetThreadStateGivenTaskRef(threadTRef, threadToGet, threadState); }
  77.  
  78.     STDMETHOD( SetThreadReadyGivenTaskRef)(THIS_ ThreadTaskRef threadTRef, ThreadID threadToSet)
  79.         { return mThreadCallbacks.AXSetThreadReadyGivenTaskRef(threadTRef, threadToSet); }
  80.         
  81. private:
  82.     AXThreadCallbacks mThreadCallbacks;
  83.  
  84. };
  85.  
  86.